package com.by.facade.dto.clue;

import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author Tian Wei
 * @version 1.0
 * @date 2024/4/2 2:40 PM
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserClueWorkbenchConditionWDTO {


    //("运营阶段")
    @NotNull(message = "运营阶段不能为空")
    private Long operationStage;

    //("期数")
    private Integer phaseNo;

    //("[促转化]用户运营周期状态")
    private Integer tradeStatus;

    //("合同签署状态")
    private Integer contractSignStatus;

    //("成单区间开始时间")
    private LocalDateTime searchStartCompleteOrderDateTime;

    //("成单区间截止时间")
    private LocalDateTime searchEndCompleteOrderDateTime;

    //("当前段运营订单净总金额")
    private BigDecimal searchStartCurrentNetAmount;

    //("当前运营订单净总金额")
    private BigDecimal searchEndCurrentNetAmount;

    //("用户加微信状态")
    private Integer userWxCpFriendStatus;

    //("课程汇总状态")
    private Integer courseStatus;

    //("完课次数起始值")
    private Integer searchStartUserCompleteCourseWareCount;
    
    //("完课次数截止值")
    private Integer searchEndUserCompleteCourseWareCount;

    //("查询条件类型（1：学号；2：手机号；3：昵称；）")
    private Integer queryConditionType;

    //("查询条件")
    private String queryCondition;

    //("[转私域,跟到课,促转化]手机号")
    private String phone;

    //("[转私域,跟到课,促转化]用户id")
    private Long userId;

    //("[转私域,跟到课,促转化]用户昵称")
    private String nickName;

    //("[促转化]售后状态")
    private Integer saleAfterStatus;

    //("[促转化]是否有过退款")
    private Integer nextStageHaveRefundFlag;

    //("系统用户id")
    @NotNull(message = "系统用户id不能为空")
    private Long sysUserId;

    //("排序字段")
    @NotNull(message = "排序字段")
    private List<Integer> sortTypeList;

    @NotNull(message = "课表计划id不能为空")
    private Long coursePlanId;


}
